package com.gljx.web.dao;

import com.gljx.web.Entity.SubjectOneReg;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

@Component
public interface SubjectOneRegMapper {
	int deleteByPrimaryKey(String fid);

	int insert(SubjectOneReg record);

	int insertSelective(SubjectOneReg record);

	SubjectOneReg selectByPrimaryKey(String fid);

	int updateByPrimaryKeySelective(SubjectOneReg record);

	int updateByPrimaryKey(SubjectOneReg record);

	/**
	 * 查找最大编码
	 * @return
	 */
	String selectFnumber(String companyId);

	/**
	 * 根据fid查找科目一考试登记信息
	 * @param fid
	 * @return
	 */
	SubjectOneReg selectSubjectOneRegByFid(String fid);

	/**
	 * 根据业务日期查找科目一考试登记信息的单据
	 * @param fbizdate
	 * @param cfcartype
	 * @return
	 */
	List<SubjectOneReg> selSubjectOneRegByfbizdate(@Param("companyid") String companyid,@Param("fbizdate") String fbizdate,@Param("cfcartype")String cfcartype,@Param("name")String name);

	/**
	 * 统计查询科目一 报考人数 按日期
	 * @param companyId
	 * @param beginTime
	 * @param endTime
	 * @return
	 */
	List<SubjectOneReg> selSubjectOneSumEnterPersons(@Param("companyId") String companyId,@Param("beginTime") String beginTime,@Param("endTime") String endTime);

	/**
	 * 统计查询科目一  考试合格 不合格 缺考 人数  按日期
	 * @param companyId
	 * @param beginTime
	 * @param endTime
	 * @return
	 */
	List<SubjectOneReg> selSubjectOneResultPassExamRate(@Param("companyId") String companyId,@Param("beginTime") String beginTime,@Param("endTime") String endTime);

	/**
	 * 统计查询科目一 报考人数 按月份
	 * @param companyId
	 * @param beginTime
	 * @param endTime
	 * @return
	 */
	List<SubjectOneReg> selSubjectOneSumEnterPersonsByMonth(@Param("companyId") String companyId,@Param("beginTime") String beginTime,@Param("endTime") String endTime);

	/**
	 * 统计查询科目一  考试合格 不合格 缺考 人数  按月份
	 * @param companyId
	 * @param beginTime
	 * @param endTime
	 * @return
	 */
	List<SubjectOneReg> selSubjectOneResultPassExamRateByMonth(@Param("companyId") String companyId,@Param("beginTime") String beginTime,@Param("endTime") String endTime);

	List<SubjectOneReg> selectSubjectOneReg(Map map);

}